In a data storage device having a disk-shaped rotating recording medium, the surface of the disk is divided into many concentric data tracks and every track is separated into many sectors or segments. An example of such a data storage device is a HDD typically spun by a spindle motor. In the case of a HDD, “runout’ is defined as the departure of the movement of a spindle motor or spinning disk segment from ideal circular motion. Due to fabricating precision limitations, such as bearing tolerances, rotor eccentricity, and unbalanced mass, runout inevitably exists in all spindles. FIG. 1 illustrates this for a typical spindle platter. FIG. 1(a) shows by the arc Si the points on the disk surface which constitute the i-th disk segment, including a centre point Pi, when the disk has a radial motion indicated as ωr. FIG. 1(b) shows by a dashed line ideal circular motion as the spindle platter performs a complete rotation, and the solid line indicates the actual motion of the point Pi. FIG. 1(c) shows by the solid lines the motion of the point Pi during multiple rotations.
As the disk spins, each segment of the track circumference on disk surface travels underneath one or more read/write heads. In a hard disk drive, there are two sorts of runouts: radial and axial runouts. Radial runout is defined as the radial variation in the distance between the read/write head and the ideal circular as shown in FIG. 2. FIG. 2(a) shows the spatial relation of the spindle platter and the read/write head, with the dashed line showing many segments. FIG. 2(b) shows the runout during multiple rotations of the spindle patter. The displacement of each segment centre point from the ideal concentric circular is defined as the radial runout in IDEMA standards. For a specific track where the read/write head is positioned, the radial runout of the ith segment can be expressed as:dr(i,j)|re=rPij(θi)−re  (1)where Pi is the center point of the ith segment, the variable rPi is its radius value in polar coordinates, the variable rc is the radius of the ideal circle of the detected track, the variable θi is the angular of the center point, Pi, of the ith segment and the index j denotes the jth revolution the disk has spun.
At the same time, there exists the axial runout which is defined as variations in the distance between the head and the disk surface. The axial runout is caused mainly by the surface profile of the disk and the bearing floating height. Large and fast axial runout usually increases the risk of a head crash. For a specific track where the read/write head is positioned, the axial runout of the ith segment can be expressed as:dz(i,j)|re=zPij(θi,rPij)−zc(rc)  (2)where the variable zP is the z-axial value of the detected segment in three-dimensional polar coordinates and zc is the z-axial value of the ideal circle at the radius rc.
Measurement of radial and axial runouts is critical in the hard disk drive industry. As a disk rotates, the read/write heads must be positioned at a specific radius in order to read or write the data from/to a selected track. Data written at a track segment of a disk surface will not be read properly if the location of the track segment appears at a different radial location relative to the head position system. Since these radial and axial runout orbits do not repeat themselves in each revolution, the total indicated runouts (TIR) are the sum of two components, i.e., repeatable runout (RRO) and non-repeatable runout (NRRO). The RRO component happens synchronously with the rotor angular position in each revolution and the NRRO component is different in each revolution even at the same angular position of the rotor.
According to IDEMA standard T17-91 and ANSI/ASME B89.3.4M, the radial and axial RRO and NRRO during N revolutions can be expressed as following equations.
                              a          )                ⁢                                  ⁢        Radial        ⁢                                  ⁢        RRO        ⁢                  :                                                                                          RRO            r                    ⁡                      (            i            )                          =                                            1              N                        ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                                                          ⁢                              dr                ⁡                                  (                                      i                    ,                    j                                    )                                                              =                                    1              N                        ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                                                          ⁢                              [                                                                            r                                              P                        i                                            j                                        ⁡                                          (                                              θ                        i                                            )                                                        -                                      r                    c                                                  ]                                                                        (        3        )                                          b          )                ⁢                                  ⁢        Radial        ⁢                                  ⁢        NRRO        ⁢                  :                                                                                          NRRO            r                    ⁡                      (                          i              ,              j                        )                          =                                            r                              P                i                            j                        ⁡                          (                              θ                i                            )                                -                                    1              N                        ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                                                r                                      P                    i                                    j                                ⁡                                  (                                      θ                    i                                    )                                                                                        (        4        )                                          c          )                ⁢                                  ⁢        Axial        ⁢                                  ⁢        RRO        ⁢                  :                                                                                          RRO            z                    ⁡                      (            i            )                          =                                            1              N                        ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                                                          ⁢                              dz                ⁡                                  (                                      i                    ,                    j                                    )                                                              =                                    1              N                        ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                                                          ⁢                              [                                                                            z                                              P                        i                                            j                                        ⁡                                          (                                              θ                        i                                            )                                                        -                                                            z                      c                                        ⁡                                          (                                              r                        c                                            )                                                                      ]                                                                        (        5        )                                                      d            )                    ⁢                                          ⁢          Axial          ⁢                                          ⁢          NRRO          ⁢                      :                          ⁢                                                                                                            NRRO            z                    ⁡                      (                          i              ,              j                        )                          =                                            z                              P                i                            j                        ⁡                          (                                                θ                  i                                ,                                  r                                      P                    i                                    j                                            )                                -                                    1              N                        ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                                                z                                      P                    i                                    j                                ⁡                                  (                                                            θ                      i                                        ,                                          r                                              P                        i                                            j                                                        )                                                                                        (        6        )            
With a proper control algorithm, the radial RRO component can be predicted, and compensated for in advance during the track seeking and following. But the NRRO cannot be predicted from one revolution to the next. The consequence of radial NRRO is track-mix registration (TMR). It causes non-compensable or uncorrectable TMR and off-track read/write errors in hard disk drives, which is a key factor to influence the track and areal densities of HDDs. How well a spindle motor or a spinning disk can repeat its path over many revolutions, i.e., how much the NRRO is, dictates a physical limitation on the track width or the track density.
As HDD areal density increases, track widths become smaller and the NRRO needs to be smaller too. Now the manufacturers of the high areal density HDDs are looking for more accurate and higher resolution runout measurements of spinning spindle motors and media platters in both axial and radial directions. With the areal density approaching 150 GB/in2 (23.2 GB/cm2), the track density increases to 400K TPI (tracks per inch) (160 tracks/cm), the spindle motors and assembly disks must be fabricated with the stricter runout control. Therefore the PES signal is not degraded too much and the flying distance between the read/write heads and the media does not vary too dramatically. Currently, HDD manufacturers seek 1 nanometer resolution and accuracy, but no such system is available in the market to meet this high performance requirement.
In past, several kinds of runout measurement systems for HDD have been developed. As implied in Eqs. (1) to (6), the angular position of the rotor circumference segments must be known for each sample of the signal from the sensor which detects the position of the moving surface (here referred to as the “displacement sensor”, and its output as the “displacement signal”), and the first generation of runout measurement instruments usually employed an encoder to detect the angular position of the rotor. In one version, the rotor included markings which could be optically detected using an optical sensor. The output of the optical sensor, and of the displacement sensor(s) (typically capacitance sensors) measuring respectively radial and axial displacements of the rotor, were processed using an oscilloscope, which gave an input to a processor. In another arrangement, pulses generated by a photodetector by observing slits on the rotor were used to control generation of pulses which were fed to the motor to control its speed, and also fed to a processor which received a displacement signal from proximity probes measuring displacement of the disks.
However, currently all HDDs have adopted sensorless technology to control spindle motors without encoders: the processor which drives the motor does so by generating a pulsed index signal (square wave). This technology is also used in the runout measurement system for HDDs: the processor measures runout using knowledge of the timing of the index signal, together with the output of capacitance proximity sensors(s) measuring displacements of the rotor. In the market, there are several kinds of runout measurement systems used in hard disk drive industry.
The advantage of using a capacitance probe is that it can measure the absolute distance between its sensor and the tested target. However, a capacitance probe based system has several drawbacks. Firstly its sensor diameter is large; the diameter of the best available capacitance sensor is 500 microns, whereas the width of a HDD track is 0.15 microns. Secondly, its resolution is 5 nanometers for 100 KHz, which is not good enough for high frequency runout signal, such as 64 KHz (250 Hz×256 segment for 15K rpm HDDs), when 1 nanometer resolution is required. Thirdly, the best linearity is 0.25% which will cause a 25 nm error in a 10 microns runout measurement. Fourthly, the detecting distance between the sensor and the target circumference is limited to 50-100 microns for high resolution. This causes great difficulty in setting up the system to avoid a crash of the capacitance sensor and the recording media surface.
Another type of displacement sensor is a Laser Doppler Vibrometer which can measure the relative distance or the relative displacement between the sensor and the tested targeted. The advantages of a Laser Doppler Vibrometer are that it has a very small tested spot of 16 microns, high resolution of 0.1-1 nm even at 100 KHz, good linearity of 0.1%, excellent accuracy of 0.2% in a wide range, and can be operated far away from the tested target. The disadvantages are that there is a low frequency drift, and the sensor is sensitive to the roughness of the rotating tested surface. However, when high accuracy of HDD runout measurement is required, the LDV technology is the only qualified candidate at moment.
Since all HDDs adopt fluid dynamical bearings, the RRO is about 200 times the NRRO component. It means that if there is any very small error of the rotor position detection, the NRRO will be added to by a big error. Therefore, when it is needed to measure runout with high accuracy, in particular NRRO measurement, the rotor position must be measured with high accurate and resolution. Here “resolution” refers to the nominal accuracy of position measurement, and “accuracy” refers to total error.
If the rotating speed is constant, the sampling interval of the index signal can be translated to the angular position of the rotor. The maximum possible measurement error of NRRO, which is caused by both the sampling interval and the rotor position error, will be:
                              e          NRRO                ≤                              d            RRO                    ⁡                      (                                                                                                n                    60                                    ×                                      t                    s                                                                              +                                                                                    Δ                    ⁢                                                                                  ⁢                                          θ                      err                                                                            2                    ⁢                    π                                                                                        )                                              (        7        )            where dRRO is the actual peak-to-peak repeatable runout, n is the speed in rpm, ts is the sampling interval and Δθerr is the maximum error of position index per revolution. Therefore, the relative error is:
                                                        e              NRRO                        ⁡                          (              %              )                                ≤                      100            ⁢                          (                                                                                                            n                      60                                        ×                                          t                      s                                                                                        +                                                                                              Δ                      ⁢                                                                                          ⁢                                              θ                        err                                                                                    2                      ⁢                      π                                                                                                    )                        ⁢            %                          =                  100          ⁢                      (                                                                            n                                      60                    ×                                          f                      s                                                                                                  +                                                                                    Δ                    ⁢                                                                                  ⁢                                          θ                      err                                                                            2                    ⁢                    π                                                                                        )                    ⁢          %                                    (        8        )            where fs is the sampling rate per signal channel.
From equation (8), both the detection of the rotor position and the sampling interval can cause additional errors to NRRO measurement. Conventionally, the sensorless rotor position detection of HDDs provides a once per-revolution pulse. From this pulse, a phase-locked loop (PLL) frequency multiplier is applied to generate N pulses per revolution, corresponding to the N segments of the detected circumference with the displacement sensors. A PLL, by necessity, has a loop filter that, in this case, samples the phase once per revolution. Due to the phase shift of the filter, the loop always lags as it tries to follow any speed change of the spindle motor. Also PLL may generate the phase jitter. When the runout is tested at different spinning speeds, this property of PLL circuitry, combined with the necessity of variable-rate sampling, increases the inaccuracy of the system in determining the angular rotor position.
Equation (8) also indicates that the sampling interval also causes an error in NRRO measurement. If the digitizing error is controlled to be smaller than 0.01%, which about 1 nm error of NRRO at 15,000 rpm, the sampling rate should be as high as 2.5 MHz. For 256 revolutions, the data will be as much as 2.56 million points and the processing time will be longer than 10 minutes for one measurement. Also such a fast sampling rate greatly increases the runout measurement system cost and size. Normally a 100-200 KHz sampling rate is applied in the runout measurement and this sampling rate alone can generate an error of more than 10 nanometers. This error is too big for 125-150 nm track width and 10 nm head/media space.
U.S. Pat. No. 6,879,124B1, authored by inventors from the Data Storage Institute in Singapore, and the disclosure of which is incorporated by reference, proposes detecting the rotor position accurately without phase delay by finding the zero crossing points (ZCP) of a signal representing the phase back EMF. Referring to FIG. 3, an example system is shown having 3 pole-pairs. It comprises a BLDC motor 20, a commutation control module 25, and a Zero Crossing Point (ZCP) detection module 35. The BLDC motor 20 comprises a stator 12 having three phases, a rotor 13, and a plurality of switches controlled by a plurality of switching signals (SAH, SBH, SCH, SAL, SBL, SCL). The switches are coupled to each phase of the stator 12 for commutating the phases of the stator.
The ZCP detection module 35 has the structure shown in FIG. 4. It receives inputs of terminal voltages from each phase of the stator 12 in the BLDC motor 20 and also a neutral voltage VN from the center of a star connection of the stator windings. The ZCP detection module 35 compares the terminal voltages with the neutral voltage VN to obtain individual phase voltages (VAN or VA−VN, VBN or VB−VN, VCN or VC−VN) of each phase and use them to determine the ZCPs. The ZCP detection module 35 is also coupled to the commutation control module 25. The commutation control module 25 receives data on the ZCPs from the ZCP detection module 35. The commutation control module 25 utilizes the data to generate the switching signals (SAH, SBH, SCH, SAL, SBL, SCL) to control the plurality of switches for the commutation control of the BLDC motor 20.
An example of phase voltage of phase A, VAN is shown in FIG. 5(a), which has six true zero crossing points per revolution. FIG. 5(b) and FIG. 5(c) show the signals SAH and SAL. The switching OFF of the switches for the phase commutation results in voltage spikes 51 in phase A as seen in FIG. 5(a). These voltage spikes 51 may cause false ZCPs when their amplitudes are big enough. But because they are not caused by the phase back EMF generated by the movement of the rotor with reference to the stator, these ZCPs are not considered as true ZCPs. As such these voltage spikes 51 generated by the switching-off of the switches for the phase commutations are referred to as false ZCPs.
Referring to FIG. 4, the ZCP detection module 35 comprises a ZCP level detection circuit 40 which receives input from the terminal voltages and the neutral voltage to generate a plurality of ZCP level outputs (ZA, ZB, ZC) corresponding to each of the phase voltages of the BLDC motor 20. FIG. 5(d) shows the output ZA. The ZCP level outputs comprise rising and falling edges indicating a change of state when the phase voltages rise and fall through a zero values indicating a ZCP.
Referring to FIGS. 6(a), 6(b) and 6(c), the respective ZCP level outputs (ZA, ZB, ZC) of each of the three phases (A, B, C) of the BLOC motor 20 are shown (note that the horizontal time scale of FIG. 6 is not the same as in FIG. 5). The ZCP level outputs are received by a pulse generator 42 which detects and consolidates the falling and rising edges of all the ZCP outputs and generates a ZCP pulse signal (PZABC) comprising a pulse at each falling or rising edge of all the ZCP level outputs 41. PZABC is shown in FIG. 6(d), where each of the pulses represents an occurrence of a ZCP. The pulses are numbered 1 to 18. It should be noted that the sum of pulses during one electrical cycle may be from 6 ZCP pulses without false ZCP pulses to 18 ZCP pulses with 12 false ZCP pulses, which will depend on the motor parameters and its operation status. Referring again to FIG. 3, the unit 44 removes some of the false ZCP pulses using a first false ZMP masking signal, to form a first masked ZMP signal (PZM). Then the state comparator 48 removes more of the false ZCP pulses, to form a “true ZMP signal” (ZTABC).
The proposed method can precisely detect the magnet pole-pairs pulses per mechanical revolution. As discussed the number of ZCP pulses per revolution for a motor with 3 magnet pole-pairs is 18, and more generally the number of such pulses per revolution is 6 times the number of magnet pole-pairs. This is counting all the false ZCPs. For example, there are 36 pulses per revolution for an HDD spindle motor with 6 magnet pole-pairs, and 24 pulses for a motor with 4 magnet pole-pairs. However, according to the testing standard of HDD manufacture, the runout measurement needs at least 256 pulses per revolution. Thus, the number of direct detected pulses through the zero-crossing method of U.S. Pat. No. 6,879,124B1 is too low, although it is much better than the conventional one pulse per revolution.
Therefore, the major objective of this invention is to develop a new runout method which eliminates the NRRO error dependencies on the A/D convention sampling rate and PLL rotor position phase shift.